package com.songshuai.pangu.api.service;

import com.songshuai.webapi.baseapi.dto.feign.request.pangu.salemeeting.QueryCustomersReqDto;
import com.songshuai.webapi.baseapi.dto.feign.request.pangu.salemeeting.SendInvitationReqDto;
import com.songshuai.webapi.baseapi.dto.feign.request.pangu.salemeeting.TalkNotesReqDto;
import com.songshuai.webapi.baseapi.dto.feign.response.pangu.salemeeting.*;
import com.songshuai.webapi.baseapi.pojo.BaseParmDto;
import com.songshuai.webapi.baseapi.pojo.QueryPageRes;

import java.util.List;

/**
 * @Author: lhx
 * @Date: 2019/3/29 20:35
 */
public interface SalesMeetingService {


    /**
     * 查看客户回执单信息
     * @param inviteNo 邀约编号
     * @return
     */
    ReceiptInfoResDto queryReceipt(String inviteNo);



    /**
     * 查看邀请函
     * @param meetingCode 会议编号
     * @return
     */
    List<InvitationLetterResDto> queryInvitationLetter(String meetingCode);



    /**
     * 查询会议列表
     * @param dateType 0-最近 1-未来
     * @return
     */
    List<MeetingListResDto> queryMeetingList(Integer dateType,String userId);


    /**
     * 根据会议查询客户集合（已邀约）
     * @param saleId
     * @param meetingNo
     * @return
     */
    List<CustomerListResDto> queryCustomerList(Integer saleId,String meetingNo);


    /**
     * 查询客户信息
     * @param request
     * @return
     */
    QueryPageRes<List<CustomerInfosResDto>> queryCustomers(BaseParmDto<QueryCustomersReqDto> request);


    /**
     * 发送邀请函
     * @param request
     * @return
     */
    String sendInvitation(SendInvitationReqDto request);


    /**
     * 查询销售人员信息
     * @param userId
     * @return
     */
    List<SalesManInfoResDto> querySalesInfo(String userId);


    /**
     * 转交客户
     * @param userId
     * @param cluesIds
     * @param saleIds
     * @return
     */
    Boolean handOverCustomer(String userId, List<Long> cluesIds, List<Integer> saleIds);


    /**
     * 新增沟通记录
     * @param request
     * @return
     */
    Boolean addTalkNotes(TalkNotesReqDto request);


    /**
     * 获取客户历史沟通记录
     * @param clueGuid
     * @return
     */
    List<CommunicateListResDto> getCommunicateList(Long clueGuid);


}
